In recent years, the popularity of smart mobile devices, such as smartphones and tablets, has exploded. Many of the functions that device users utilize on such devices are supported by mobile apps. A mobile app typically involves an application program stored on and executed by the mobile device. Many mobile applications, however, involve an interaction with a server program stored on and executed by server hardware in a network, such as a mobile communications network and/or the Internet. The application program on the mobile device serves as a client to obtain or consume a service offered by a server application running on a network computer platform. Although some types of such client programs, such as browsers, may communicate with a variety of servers to obtain different services, many mobile apps involve interaction of the client program with a specific corresponding server program. A mobile shopping app, for example, might utilize the shopping service vendor's client application program running on the mobile device to enable the mobile device to obtain information from and conduct transactions with a server of that same shopping service vendor. The client application in turn provides the user interface functionalities on the device, albeit as configured by the particular vendor for the shopping service.
Where the service provider offers a mobile app, with a mobile client configured to correspond to and specifically access that provider's server application, it may be undesirable for client applications of other parties to access information from and/or on that provider's server. By way of an example, consider a mobile network service provider that offers a mobile app allowing its device user-customers to access their usage and other account information on-line. Such a provider operates a server application on-line and offers for download a corresponding client application program for execution on the customers' mobile devices. The service provider in our example intends to allow users of its client application program access to the information but may prefer not to allow third party client applications access to the on-line information at the server, even if the other client applications are running on devices of customers of the service provider.
Currently, the backend services accessed via the server are able to check whether a client request originates from a customer device, but not from which application running in the device. For example, third party data meter apps exist in the marketplace for execution on mobile devices. These data meter apps are able to utilize a network service provider's backend service to obtain usage data corresponding to the user of the mobile device (e.g., minutes of use, data transferred, etc.), even if the provider's application server would desire such apps not to be able to access the usage data, because the backend service on the provider's application server cannot distinguish those third party data meter apps from the provider's own mobile app client program.